package cn.zn.modules.pz.cur.entity;

import cn.zn.framework.common.abs.AbsOldMainEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "tp_main")
public class TpMain extends AbsOldMainEntity {

    @TableField(value = "AGENT_USERS_")
    private String agentUsers;

    @TableField(value = "APPLY_CODE_")
    private String applyCode;

    @TableField(value = "APPLY_DATE_")
    private Date applyDate;

    @TableField(value = "APPLY_DEPT_CODE_")
    private String applyDeptCode;

    @TableField(value = "APPLY_TYPE_")
    private String applyType;

    @TableField(value = "APPLY_USER_CODE_")
    private String applyUserCode;

    @TableField(value = "ASSOCIATED_CODE_")
    private String associatedCode;

    @TableField(value = "IS_ASSOCIATED_")
    private Boolean isAssociated;

    @TableField(value = "LEVEL_")
    private Integer level;

    @TableField(value = "PI_ID_")
    private String piId;

    @TableField(value = "STATE_")
    @Builder.Default
    private Integer state = 0;

    @TableField(value = "TITLE_")
    private String title;

    @TableField(value = "TICKET_GENERATED_")
    private Boolean ticketGenerated;

    @TableField(value = "ARCHIVE_CODE_")
    private String archiveCode;

    @TableField(value = "ARCHIVE_REMARK_")
    private String archiveRemark;

    @TableField(value = "IS_ARCHIVE_")
    private Boolean isArchive;

    @TableField(value = "INVALID_REMARK_")
    private String invalidRemark;

    @TableField(value = "AUTH_USER_CODE_")
    private String authUserCode;

    @TableField(value = "APPLY_DEPT_NAME", exist = false)
    private String applyDeptName;

    @TableField(value = "APPLY_USER_NAME", exist = false)
    private String applyUserName;

    @TableField(value = "REASON", exist = false)
    private String reason;

    @TableField(value = "MONEY", exist = false)
    private Double money;

    @TableField(value = "SPENDING_TYPE", exist = false)
    private Integer spendingType;

    @TableField(value = "PRINT_NUM", exist = false)
    private Integer printNum;

    /**
     * 是否报销，仅对请示有效
     */
    @TableField(exist = false)
    private Boolean isExpense;
}